package cn.wzc.crystal.platform.query;

import java.util.Map;

/**
 * 查询编译器
 *
 * @author wzc
 */
public interface QueryCompiler {

	/**
	 * 编译查询 SQL
	 * 1. 动态条件处理
	 * 2. 动态 order by 处理
	 * 3. 动态 SQL 内容处理
	 * 4. 不支持从 context 中获取 SQL 文( 未来可以考虑支持 2021年05月30日00:26:08 王振冲 )
	 *
	 * @param name        查询命名
	 * @param sqlTemplate 查询模板
	 * @param context     编译上下文
	 * @return 编译后的查询封装
	 */
	QuerySql compile(String name, String sqlTemplate, Map<String, Object> context);

}
